package shop.local.valueobjects;

import java.io.*;

public class Artikel implements Serializable, Comparable<Artikel> {

	private static final long serialVersionUID = -403021762250684979L;
	private String bezeichnung;
	private String beschreibung;
	private int nummer;
	protected int bestand;
	private float preis;
//	protected boolean istMassengutArtikel;
	
	
	public Artikel() {
		// Default-Konstruktor
	}

	public Artikel(String titel, String aBeschreibung, int nr, int bestand, float preis) {
		nummer = nr;
		beschreibung = aBeschreibung;
		bezeichnung = titel;
		this.bestand = bestand;
		this.preis = preis;
//		istMassengutArtikel = false;
	}

	public Artikel(Artikel a) {
		// Copy-Konstruktor
		this(a.bezeichnung, a.beschreibung, a.nummer, a.bestand, a.preis);
	}

	public String toString() {
		return ("ArtikelNr: " + nummer + " / Artikelbezeichnung: " + bezeichnung + " / Artikelbeschreibung: " + beschreibung + " / Artikelbestand: " + bestand + " / Preis: " + preis);
	}

	
	public boolean equals(Object andererArtikel) {
		if (andererArtikel instanceof Artikel) 
			return ((nummer == ((Artikel) andererArtikel).nummer) 
					&& (bezeichnung.equals(((Artikel) andererArtikel).bezeichnung)));
		else
			return false;
	}

	
	// Accessor-Methoden
	
	public int getNummer() {
		return nummer;
	}

	public String getTitel() {
		return bezeichnung;
	}
	
//	public boolean getArtikelTyp() {
//		return istMassengutArtikel;
//	}
	
	public int getBestand() {
		return bestand;
	}
	
	public float getPreis() {
		return preis;
	}
	
	public void setBestand(int i) {
		this.bestand = i;
	}
	
	public void setPreis(float preis) {
		this.preis = preis;
	}
	
	public void setNummer(int nr) {
		this.nummer = nr;
	}
	
	public void setTitel(String titel) {
		this.bezeichnung = titel;
	}
	
	public String getBeschreibung() {
		return this.beschreibung;
	}
	
	public void setBeschreibung(String bes) {
		this.beschreibung = bes;
	}
	
//	public int getEinheit() {
//		return 0;
//	}
	
	   public int compareTo(Artikel a) {
	        if( bezeichnung.compareTo(a.getTitel()) < 0 )
	            return -1;
	        if( bezeichnung.compareTo(a.getTitel()) > 0 )
	            return 1;
	            
	        return 0;
	    }

}